#pragma once
#include "ButtonSm1.h"

#ifdef __cplusplus
extern "C" {
#endif

////////////////////////////////////////////////////////////////////////////////
// enums
////////////////////////////////////////////////////////////////////////////////

enum ButtonId
{
    ButtonId_DOWN,
    ButtonId_UP,
    ButtonId_OK,
    ButtonId_BACK,
    ButtonIdCount
};


////////////////////////////////////////////////////////////////////////////////
// public/extern global vars
////////////////////////////////////////////////////////////////////////////////

// use static asserts before accessing to ensure safe array access
extern struct ButtonSm1 Buttons_sms[ButtonIdCount];


////////////////////////////////////////////////////////////////////////////////
// prototypes
////////////////////////////////////////////////////////////////////////////////

// must be called before other Buttons functions
void Buttons_setup();

// call periodically
void Buttons_step();


#ifdef __cplusplus
}
#endif